[INFO] fetching crate foxguard 0.7.1...
[INFO] testing foxguard-0.7.1 against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] extracting crate foxguard 0.7.1 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate foxguard 0.7.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate foxguard 0.7.1
[INFO] tweaked toml for crates.io crate foxguard 0.7.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate foxguard 0.7.1 on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate foxguard 0.7.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tree-sitter-python v0.23.6
[INFO] [stderr]   Downloaded tree-sitter-go v0.23.4
[INFO] [stderr]   Downloaded tree-sitter-javascript v0.23.1
[INFO] [stderr]   Downloaded tree-sitter v0.25.10
[INFO] [stderr]   Downloaded tree-sitter-ruby v0.23.1
[INFO] [stderr]   Downloaded tree-sitter-swift v0.7.1
[INFO] [stderr]   Downloaded tree-sitter-kotlin-sg v0.4.0
[INFO] [stderr]   Downloaded tree-sitter-c-sharp v0.23.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 48db574dcc85237847fc84ef5adcad56d052030d0226c66c567d799c26c7ed8f
[INFO] running `Command { std: "docker" "start" "-a" "48db574dcc85237847fc84ef5adcad56d052030d0226c66c567d799c26c7ed8f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48db574dcc85237847fc84ef5adcad56d052030d0226c66c567d799c26c7ed8f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48db574dcc85237847fc84ef5adcad56d052030d0226c66c567d799c26c7ed8f", kill_on_drop: false }`
[INFO] [stdout] 48db574dcc85237847fc84ef5adcad56d052030d0226c66c567d799c26c7ed8f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7f41f5c1495b68808d72c675e7cb5916529747b64dbfa47853f52733e3cbc7cb
[INFO] running `Command { std: "docker" "start" "-a" "7f41f5c1495b68808d72c675e7cb5916529747b64dbfa47853f52733e3cbc7cb", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tree-sitter-javascript v0.23.1
[INFO] [stderr]    Compiling tree-sitter-python v0.23.6
[INFO] [stderr]    Compiling tree-sitter-swift v0.7.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling tree-sitter-go v0.23.4
[INFO] [stderr]    Compiling tree-sitter-java v0.23.5
[INFO] [stderr]    Compiling tree-sitter-php v0.24.2
[INFO] [stderr]    Compiling tree-sitter-kotlin-sg v0.4.0
[INFO] [stderr]    Compiling tree-sitter-rust v0.24.2
[INFO] [stderr]    Compiling tree-sitter-c-sharp v0.23.1
[INFO] [stderr]    Compiling tree-sitter-ruby v0.23.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tree-sitter v0.25.10
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling foxguard v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.58s
[INFO] running `Command { std: "docker" "inspect" "7f41f5c1495b68808d72c675e7cb5916529747b64dbfa47853f52733e3cbc7cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f41f5c1495b68808d72c675e7cb5916529747b64dbfa47853f52733e3cbc7cb", kill_on_drop: false }`
[INFO] [stdout] 7f41f5c1495b68808d72c675e7cb5916529747b64dbfa47853f52733e3cbc7cb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 02d2f1797b9137ab36e6e63336657c9f07093894aaacdf8c522094949d271200
[INFO] running `Command { std: "docker" "start" "-a" "02d2f1797b9137ab36e6e63336657c9f07093894aaacdf8c522094949d271200", kill_on_drop: false }`
[INFO] [stderr]    Compiling foxguard v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.61s
[INFO] running `Command { std: "docker" "inspect" "02d2f1797b9137ab36e6e63336657c9f07093894aaacdf8c522094949d271200", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02d2f1797b9137ab36e6e63336657c9f07093894aaacdf8c522094949d271200", kill_on_drop: false }`
[INFO] [stdout] 02d2f1797b9137ab36e6e63336657c9f07093894aaacdf8c522094949d271200
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5bad51714c1ad5a6251b9a18f8befd389bf4f40d3ae3800e7b901a98bf160fa3
[INFO] running `Command { std: "docker" "start" "-a" "5bad51714c1ad5a6251b9a18f8befd389bf4f40d3ae3800e7b901a98bf160fa3", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.28s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/foxguard-78f951834ff4ce02)
[INFO] [stdout] 
[INFO] [stdout] running 300 tests
[INFO] [stdout] test diff::tests::test_diff_findings_all_new ... ok
[INFO] [stdout] test diff::tests::test_diff_findings_none_new ... ok
[INFO] [stdout] test diff::tests::test_diff_findings_snippet_whitespace_tolerance ... ok
[INFO] [stdout] test engine::scanner::tests::block_comment_ignore_not_python ... ok
[INFO] [stdout] test engine::scanner::tests::block_comment_ignore_not_ruby ... ok
[INFO] [stdout] test engine::scanner::tests::path_exclude_matcher_matches_prefixes_recursively ... ok
[INFO] [stdout] test fix::command_injection::tests::test_fix_js_exec ... ok
[INFO] [stdout] test config::tests::load_for_scan_allows_paths_within_scan_root_for_nested_explicit_config ... ok
[INFO] [stdout] test config::tests::load_for_scan_parses_scan_ignore_rules ... ok
[INFO] [stdout] test engine::scanner::tests::path_exclude_matcher_matches_globs ... ok
[INFO] [stdout] test diff::tests::test_diff_findings_new_only ... ok
[INFO] [stdout] test config::tests::add_scan_ignore_rule_creates_or_updates_config ... ok
[INFO] [stdout] test fix::sql_injection::tests::test_fix_js_concat ... ok
[INFO] [stdout] test fix::sql_injection::tests::test_fix_go_concat ... ok
[INFO] [stdout] test engine::scanner::tests::block_comment_ignore_java ... ok
[INFO] [stdout] test fix::sql_injection::tests::test_fix_js_template ... ok
[INFO] [stdout] test config::tests::load_for_scan_rejects_absolute_paths_outside_project_root ... ok
[INFO] [stdout] test fix::sql_injection::tests::test_fix_python_fstring ... ok
[INFO] [stdout] test fix::tests::test_apply_edits_multiple_reverse_order ... ok
[INFO] [stdout] test engine::scanner::tests::block_comment_ignore_with_rule_id ... ok
[INFO] [stdout] test engine::scanner::tests::block_comment_ignore_js ... ok
[INFO] [stdout] test engine::scanner::tests::block_comment_ignore_go ... ok
[INFO] [stdout] test config::tests::load_for_scan_rejects_parent_traversal_in_config_paths ... ok
[INFO] [stdout] test report::github_pr::tests::test_format_comment_body_includes_severity_and_rule ... ok
[INFO] [stdout] test fix::tests::test_apply_edits_overlapping_skipped ... ok
[INFO] [stdout] test report::github_pr::tests::test_format_comment_body_no_fix ... ok
[INFO] [stdout] test fix::tests::test_apply_edits_single ... ok
[INFO] [stdout] test fix::sql_injection::tests::test_fix_python_concat ... ok
[INFO] [stdout] test fix::xss::tests::test_fix_document_write ... ok
[INFO] [stdout] test fix::xss::tests::test_fix_innerhtml_assignment ... ok
[INFO] [stdout] test fix::xss::tests::test_no_double_wrap ... ok
[INFO] [stdout] test fix::command_injection::tests::test_fix_python_os_system ... ok
[INFO] [stdout] test report::github_pr::tests::test_format_comment_body_no_cwe ... ok
[INFO] [stdout] test baseline::tests::append_finding_to_baseline_adds_new_entry_once ... ok
[INFO] [stdout] test report::github_pr::tests::test_post_pr_review_skips_empty_findings ... ok
[INFO] [stdout] test config::tests::add_secrets_ignored_rule_creates_or_updates_config ... ok
[INFO] [stdout] test config::tests::load_for_scan_rejects_symlink_escapes ... ok
[INFO] [stdout] test report::github_pr::tests::test_post_pr_review_skips_when_no_token ... ok
[INFO] [stdout] test report::github_pr::tests::test_relative_path_already_relative ... ok
[INFO] [stdout] test report::github_pr::tests::test_relative_path_strips_dot_slash ... ok
[INFO] [stdout] test report::github_pr::tests::test_relative_path_strips_leading_slash ... ok
[INFO] [stdout] test report::github_pr::tests::test_severity_labels ... ok
[INFO] [stdout] test rules::common::tests::get_source_line_empty_source ... ok
[INFO] [stdout] test rules::common::tests::get_source_line_basic ... ok
[INFO] [stdout] test rules::common::tests::get_source_line_out_of_bounds ... ok
[INFO] [stdout] test rules::go_taint::tests::alias_resolution_through_import_table ... ok
[INFO] [stdout] test rules::go_taint::tests::import_alias_table_basic ... ok
[INFO] [stdout] test rules::go_taint::tests::fiber_ctx_body_to_exec ... ok
[INFO] [stdout] test rules::go_taint::tests::fmt_sprintf_wraps_taint ... ok
[INFO] [stdout] test rules::go_taint::tests::interprocedural_clean_return_does_not_fire ... ok
[INFO] [stdout] test rules::go_taint::tests::direct_flow_gin_query_to_exec_command ... ok
[INFO] [stdout] test rules::go_taint::tests::fiber_ctx_query_to_exec ... ok
[INFO] [stdout] test rules::go_taint::tests::interprocedural_tainted_return ... ok
[INFO] [stdout] test rules::go_taint::tests::chi_url_param_to_exec ... ok
[INFO] [stdout] test rules::go_taint::tests::fiber_ctx_params_to_exec ... ok
[INFO] [stdout] test rules::go_taint::tests::echo_context_query_param_to_exec ... ok
[INFO] [stdout] test rules::go_taint::tests::method_declaration_summary_collected ... ok
[INFO] [stdout] test rules::go_taint::tests::method_call_on_tainted_receiver_propagates ... ok
[INFO] [stdout] test rules::go_taint::tests::closure_net_http_handler_fires_taint ... ok
[INFO] [stdout] test rules::go_taint::tests::closure_gin_handler_fires_taint ... ok
[INFO] [stdout] test rules::go_taint::tests::os_getenv_to_exec ... ok
[INFO] [stdout] test rules::javascript_taint::tests::alias_import_star_as_namespace ... ok
[INFO] [stdout] test rules::go_taint::tests::multi_return_destructuring_taints_all ... ok
[INFO] [stdout] test rules::go_taint::tests::string_concat_propagates_taint ... ok
[INFO] [stdout] test rules::go_taint::tests::net_http_form_value_to_exec ... ok
[INFO] [stdout] test rules::javascript_taint::tests::alias_chain_propagates ... ok
[INFO] [stdout] test rules::go_taint::tests::reassignment_to_literal_kills_taint ... ok
[INFO] [stdout] test rules::go_taint::tests::nested_subscript_propagates ... ok
[INFO] [stdout] test rules::go_taint::tests::type_assertion_propagates_taint ... ok
[INFO] [stdout] test rules::go_taint::tests::sanitizer_call_kills_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::alias_resolution_through_import_table ... ok
[INFO] [stdout] test rules::go_taint::tests::no_source_no_finding ... ok
[INFO] [stdout] test rules::javascript_taint::tests::arrow_function_body_is_analyzed ... ok
[INFO] [stdout] test rules::javascript_taint::tests::await_expression_propagates_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::direct_flow_req_body_to_innerhtml ... ok
[INFO] [stdout] test rules::javascript_taint::tests::cross_file_summary_extraction_finds_exported_functions ... ok
[INFO] [stdout] test rules::javascript_taint::tests::chained_method_calls_preserve_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::export_default_anonymous_function_produces_summary ... ok
[INFO] [stdout] test rules::javascript_taint::tests::export_default_named_function_produces_summary ... ok
[INFO] [stdout] test rules::javascript_taint::tests::express_param_source_is_implicit ... ok
[INFO] [stdout] test rules::javascript_taint::tests::export_default_arrow_function_produces_summary ... ok
[INFO] [stdout] test rules::javascript_taint::tests::express_param_source_via_field_access ... ok
[INFO] [stdout] test rules::javascript_taint::tests::import_default_cross_file_finding ... ok
[INFO] [stdout] test rules::javascript_taint::tests::interprocedural_arrow_function_block_body_propagates ... ok
[INFO] [stdout] test rules::javascript_taint::tests::interprocedural_arrow_function_helper_propagates ... ok
[INFO] [stdout] test rules::javascript_taint::tests::interprocedural_clean_return_does_not_fire ... ok
[INFO] [stdout] test rules::javascript_taint::tests::interprocedural_late_definition_still_found ... ok
[INFO] [stdout] test rules::javascript_taint::tests::interprocedural_tainted_return_propagates_to_caller ... ok
[INFO] [stdout] test rules::javascript_taint::tests::koa_ctx_headers_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::koa_ctx_param_name_taints_bare_ctx ... ok
[INFO] [stdout] test rules::javascript_taint::tests::koa_ctx_params_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::koa_ctx_query_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::koa_ctx_request_body_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ldap_no_finding_for_function_bind ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ldap_no_finding_for_string_search ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ldap_no_finding_when_static_filter ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ldap_search_from_req_body ... ok
[INFO] [stdout] test rules::javascript_taint::tests::method_call_on_tainted_source_propagates ... ok
[INFO] [stdout] test rules::javascript_taint::tests::method_call_with_args_still_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::multi_hop_chain_is_out_of_scope_v1 ... ok
[INFO] [stdout] test rules::javascript_taint::tests::named_import_with_alias_resolves ... ok
[INFO] [stdout] test rules::javascript_taint::tests::nested_function_has_independent_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::nestjs_headers_param_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::nestjs_params_param_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::nestjs_query_param_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::nestjs_body_param_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::one_hop_assignment_propagates ... ok
[INFO] [stdout] test rules::javascript_taint::tests::reassignment_to_literal_kills_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::require_default_binding_resolves ... ok
[INFO] [stdout] test rules::javascript_taint::tests::sanitizer_call_kills_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ssti_ejs_render_from_req_body ... ok
[INFO] [stdout] test rules::javascript_taint::tests::no_source_no_finding ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ssti_no_finding_when_static_template ... ok
[INFO] [stdout] test rules::javascript_taint::tests::string_concat_propagates_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::subscript_on_tainted_root_is_tainted ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ternary_clean_both_branches_is_clean ... ok
[INFO] [stdout] test rules::javascript_taint::tests::template_literal_propagates_taint ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ternary_tainted_alternative_propagates ... ok
[INFO] [stdout] test rules::javascript_taint::tests::ternary_tainted_consequence_propagates ... ok
[INFO] [stdout] test rules::javascript_taint::tests::xpath_no_finding_when_static_expression ... ok
[INFO] [stdout] test rules::javascript_taint::tests::to_string_on_tainted_value_is_tainted ... ok
[INFO] [stdout] test rules::kotlin::tests::command_injection_clean_literal ... ok
[INFO] [stdout] test rules::kotlin::tests::command_injection_runtime_exec ... ok
[INFO] [stdout] test rules::kotlin::tests::eval_clean_literal ... ok
[INFO] [stdout] test rules::kotlin::tests::command_injection_process_builder ... ok
[INFO] [stdout] test rules::kotlin::tests::path_traversal_clean_literal ... ok
[INFO] [stdout] test rules::kotlin::tests::eval_script_engine ... ok
[INFO] [stdout] test rules::kotlin::tests::path_traversal_file_variable ... ok
[INFO] [stdout] test rules::kotlin::tests::ssrf_clean_literal ... ok
[INFO] [stdout] test rules::javascript_taint::tests::xpath_select_from_req_query ... ok
[INFO] [stdout] test rules::kotlin::tests::ssrf_url_variable ... ok
[INFO] [stdout] test rules::kotlin::tests::sql_injection_string_concat ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_command_injection_process_builder ... ok
[INFO] [stdout] test rules::kotlin::tests::sql_injection_clean_parameterized ... ok
[INFO] [stdout] test rules::kotlin::tests::cors_star_header ... ok
[INFO] [stdout] test rules::kotlin::tests::cors_clean ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_command_injection_clean ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_command_injection_ktor ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_sql_injection_ktor_receive ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_sql_injection_spring_param ... ok
[INFO] [stdout] test rules::kotlin::tests::hardcoded_secret_clean ... ok
[INFO] [stdout] test rules::kotlin::tests::cors_star_allowed_origins ... ok
[INFO] [stdout] test rules::kotlin::tests::unsafe_deserialization_clean ... ok
[INFO] [stdout] test rules::kotlin::tests::unsafe_deserialization_read_object ... ok
[INFO] [stdout] test rules::kotlin::tests::hardcoded_secret_val ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_ssrf_spring_http_client ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_ssrf_transitive_flow ... ok
[INFO] [stdout] test rules::kotlin::tests::weak_crypto_md5 ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_ssrf_ktor_url ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_sql_injection_string_template ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_sql_injection_clean_parameterized ... ok
[INFO] [stdout] test rules::python_aliases::tests::aliased_import_resolves_alias_to_module ... ok
[INFO] [stdout] test rules::python_aliases::tests::cpickle_shadowing_pickle_resolves_to_cpickle ... ok
[INFO] [stdout] test rules::python_aliases::tests::dotted_module_import ... ok
[INFO] [stdout] test rules::python_aliases::tests::dotted_module_import_with_alias ... ok
[INFO] [stdout] test rules::python_aliases::tests::empty_source_produces_empty_table ... ok
[INFO] [stdout] test rules::python_aliases::tests::from_import_resolves_bare_name_to_dotted_path ... ok
[INFO] [stdout] test rules::python_aliases::tests::from_import_multiple_names ... ok
[INFO] [stdout] test rules::python_aliases::tests::from_import_with_alias_raw_map_stores_canonical ... ok
[INFO] [stdout] test rules::python_aliases::tests::from_import_with_alias_resolves_alias ... ok
[INFO] [stdout] test rules::python_aliases::tests::multiple_imports_combine ... ok
[INFO] [stdout] test rules::python_aliases::tests::plain_import_maps_root_to_itself ... ok
[INFO] [stdout] test rules::python_aliases::tests::unknown_identifier_passes_through_unchanged ... ok
[INFO] [stdout] test rules::python_taint::tests::alias_resolution_through_import_table ... ok
[INFO] [stdout] test rules::kotlin::tests::weak_crypto_clean_aes ... ok
[INFO] [stdout] test rules::python_taint::tests::bottle_request_params_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::bottle_request_forms_is_tainted ... ok
[INFO] [stdout] test rules::kotlin::tests::taint_ssrf_clean_literal ... ok
[INFO] [stdout] test rules::python_taint::tests::bottle_request_query_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::chained_method_calls_preserve_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::chained_string_concat_with_tainted_operand_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::conditional_expression_tainted_alternative_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::dict_comprehension_tainted_values_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::chained_assignment_propagates_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::fstring_with_literal_only_is_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::direct_flow_request_data_to_pickle_loads ... ok
[INFO] [stdout] test rules::python_taint::tests::conditional_expression_clean_both_branches_is_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::fstring_with_tainted_interpolation_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::fstring_with_tainted_mixed_with_literals_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::direct_source_as_sink_argument_without_intermediate ... ok
[INFO] [stdout] test rules::python_taint::tests::dot_format_with_tainted_argument_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::function_parameter_named_request_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::conditional_expression_tainted_body_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::dot_format_with_clean_arguments_is_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::generator_expression_tainted_iterable_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::interprocedural_late_definition_still_found ... ok
[INFO] [stdout] test rules::kotlin::tests::weak_crypto_des ... ok
[INFO] [stdout] test rules::python_taint::tests::interprocedural_tainted_return_propagates_to_caller ... ok
[INFO] [stdout] test rules::python_taint::tests::interprocedural_clean_return_does_not_fire ... ok
[INFO] [stdout] test rules::python_taint::tests::list_comprehension_clean_iterable_is_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::list_comprehension_tainted_iterable_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::method_call_on_literal_root_is_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::list_unpack_similar_to_tuple_unpack ... ok
[INFO] [stdout] test rules::python_taint::tests::list_comprehension_method_call_on_tainted_elements ... ok
[INFO] [stdout] test rules::python_taint::tests::multi_hop_chain_is_out_of_scope_v1 ... ok
[INFO] [stdout] test rules::python_taint::tests::method_call_with_args_still_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::method_call_on_tainted_source_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::integer_arithmetic_is_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::nested_function_has_independent_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::nested_subscript_propagates_through_chain ... ok
[INFO] [stdout] test rules::python_taint::tests::multiple_sanitizers_in_spec ... ok
[INFO] [stdout] test rules::python_taint::tests::percent_format_tuple_with_tainted_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::interprocedural_direct_call_as_sink_argument ... ok
[INFO] [stdout] test rules::python_taint::tests::percent_format_with_clean_operand_is_clean ... ok
[INFO] [stdout] test rules::kotlin::tests::xxe_insecure ... ok
[INFO] [stdout] test rules::python_taint::tests::percent_format_with_tainted_operand_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::method_call_on_tainted_subscript_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::no_source_no_finding ... ok
[INFO] [stdout] test rules::python_taint::tests::non_sanitizer_wrapping_call_preserves_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::reassignment_to_literal_kills_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::set_comprehension_tainted_iterable_propagates ... ok
[INFO] [stdout] test rules::python_taint::tests::string_concat_with_tainted_right_operand_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::string_concat_with_tainted_left_operand_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::sanitizer_result_assigned_to_new_variable ... ok
[INFO] [stdout] test rules::python_taint::tests::taint_survives_branch_over_approximation ... ok
[INFO] [stdout] test rules::python_taint::tests::source_call_get_json_flows_to_sink ... ok
[INFO] [stdout] test rules::python_taint::tests::string_concat_with_both_literal_is_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::subscript_on_tainted_root_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::tornado_get_argument_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::tornado_get_body_argument_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::sanitizer_call_kills_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::tuple_unpack_literal_rhs_leaves_clean_element_clean ... ok
[INFO] [stdout] test rules::python_taint::tests::tornado_request_body_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::with_statement_clean_context_does_not_taint_alias ... ok
[INFO] [stdout] test rules::python_taint::tests::walrus_operator_propagates_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::tuple_unpack_tainted_rhs_conservatively_taints_all_targets ... ok
[INFO] [stdout] test rules::python_taint::tests::tornado_get_query_argument_is_tainted ... ok
[INFO] [stdout] test rules::python_taint::tests::wrapping_call_preserves_taint ... ok
[INFO] [stdout] test rules::python_taint::tests::tuple_unpack_literal_rhs_taints_matching_element ... ok
[INFO] [stdout] test rules::ruby::tests::debug_open_url_tree ... ok
[INFO] [stdout] test rules::python_taint::tests::with_statement_tainted_context_propagates_to_alias ... ok
[INFO] [stdout] test rules::ruby::tests::test_command_injection_fires_on_variable ... ok
[INFO] [stdout] test rules::ruby::tests::test_command_injection_skips_exec_with_literal ... ok
[INFO] [stdout] test rules::python_taint::tests::sanitizer_bypassed_still_flows ... ok
[INFO] [stdout] test rules::ruby::tests::test_path_traversal_detects_all_patterns ... ok
[INFO] [stdout] test rules::ruby::tests::test_ssrf_detects_all_patterns ... ok
[INFO] [stdout] test rules::kotlin::tests::xxe_clean ... ok
[INFO] [stdout] test rules::ruby::tests::test_command_injection_skips_plain_string_literal ... ok
[INFO] [stdout] test rules::ruby::tests::test_command_injection_fires_on_interpolated_string ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_dedup_mapped_languages ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_metavar_detection ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_match_string_concat_with_metavar ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::bare_identifier_rejected_as_sink ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::compile_attribute_source ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::compile_bare_func_call ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::compile_call_with_metavar ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::compile_nested_attribute_takes_leftmost_root_and_outermost_field ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_metavariable_regex_filters_bound_matches ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::empty_pattern_either_warns_and_produces_no_matcher ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_match_hardcoded_string ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_match_eval_pattern ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::compile_call_with_ellipsis ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_parse_simple_rule ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_pattern_not_inside_excludes_nested_matches ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::nested_pattern_either_flattens_recursively ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_parse_pattern_either ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::non_taint_rule_falls_through ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::taint_rule_with_typescript_language_compiles_as_javascript ... ok
[INFO] [stdout] test secrets::tests::redact_match_mid_codepoint_end ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::taint_rule_with_unsupported_language_is_skipped ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::parse_full_taint_rule ... ok
[INFO] [stdout] test secrets::tests::redact_match_mid_codepoint_start ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_pattern_not_regex_filters_matches ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::mixed_pattern_and_pattern_either_work_together ... ok
[INFO] [stdout] test tui::tests::apply_action_review_state_is_session_only ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::taint_rule_with_javascript_language_compiles ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::pattern_either_flattens_into_multiple_matchers ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::pattern_either_in_sinks_flattens ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::taint_rule_with_go_language_compiles ... ok
[INFO] [stdout] test tui::tests::begin_scan_resets_runtime_notices_and_updates_request_id ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::pattern_either_in_sanitizers_flattens ... ok
[INFO] [stdout] test tui::tests::available_open_focuses_include_source_and_sink_when_present ... ok
[INFO] [stdout] test rules::semgrep_compat::tests::test_match_pattern_regex ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::unknown_composite_still_rejected ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::weird_shapes_rejected ... ok
[INFO] [stdout] test tui::tests::compare_findings_prioritizes_higher_severity ... ok
[INFO] [stdout] test tui::tests::cycle_open_focus_advances_through_available_targets ... ok
[INFO] [stdout] test tui::tests::dataflow_lines_highlight_active_open_target ... ok
[INFO] [stdout] test tui::tests::dataflow_lines_render_path_when_source_and_sink_are_present ... ok
[INFO] [stdout] test tui::tests::handle_key_maps_tab_to_cycle_open_focus ... ok
[INFO] [stdout] test tui::tests::launch_key_enter_starts_selected_mode ... ok
[INFO] [stdout] test tui::tests::dataflow_lines_show_fallback_when_no_trace_exists ... ok
[INFO] [stdout] test rules::semgrep_taint::tests::compile_bare_identifier_source ... ok
[INFO] [stdout] test tui::tests::handle_key_maps_enter_to_open_selected ... ok
[INFO] [stdout] test tui::tests::loading_shimmer_line_respects_requested_width ... ok
[INFO] [stdout] test tui::tests::open_action_menu_is_available_in_scan_mode ... ok
[INFO] [stdout] test tui::tests::resolve_finding_path_uses_parent_for_file_roots ... ok
[INFO] [stdout] test tui::tests::open_action_menu_is_available_in_secrets_mode ... ok
[INFO] [stdout] test tui::tests::open_command_spec_uses_code_goto_format ... ok
[INFO] [stdout] test tui::tests::open_command_spec_uses_vim_line_format ... ok
[INFO] [stdout] test tui::tests::truncate_text_adds_ellipsis_when_needed ... ok
[INFO] [stdout] test tui::tests::tui_app_starts_on_launch_screen_without_scanning ... ok
[INFO] [stdout] test tui::tests::handle_action_menu_enter_applies_selected_action ... ok
[INFO] [stdout] test tui::tests::loading_copy_uses_selected_launch_mode ... ok
[INFO] [stdout] test tui::tests::open_target_lines_show_finding_even_without_trace_details ... ok
[INFO] [stdout] test tui::tests::resolve_finding_path_joins_relative_file_under_directory_root ... ok
[INFO] [stdout] test tui::tests::render_source_context_includes_surrounding_lines_and_caret ... ok
[INFO] [stdout] test tui::tests::render_source_context_truncates_long_lines_around_selected_range ... ok
[INFO] [stdout] test tui::tests::render_source_context_marks_each_line_of_multiline_findings ... ok
[INFO] [stdout] test tui::tests::resolve_finding_path_keeps_parent_relative_paths ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 300 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/foxguard-0d8d0aa3138dcee0)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/foxguard_mcp.rs (/opt/rustwide/target/debug/deps/foxguard_mcp-48f7d4665138d5b3)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/gen_rules_ts.rs (/opt/rustwide/target/debug/deps/gen_rules_ts-674ea1aa9952040c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-0aab2c12c8ad3aac)
[INFO] [stdout] 
[INFO] [stdout] running 78 tests
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_go_safe ... ok
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_vulnerable ... ok
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_pattern_either_safe ... ok
[INFO] [stdout] test cross_file::test_realistic_gin_app_findings ... ok
[INFO] [stdout] test features::test_external_rules_respect_semgrep_paths_filters ... ok
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_js_vulnerable ... ok
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_safe ... ok
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_js_safe ... ok
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_go_vulnerable ... ok
[INFO] [stdout] test cross_file::test_semgrep_taint_yaml_bridge_pattern_either_vulnerable ... ok
[INFO] [stdout] test csharp::test_vulnerable_csharp_finds_all_rules ... ok
[INFO] [stdout] test features::test_invalid_path_exits_nonzero ... ok
[INFO] [stdout] test features::test_explain_json_includes_trace_fields ... ok
[INFO] [stdout] test features::test_scan_rejects_config_path_traversal ... ok
[INFO] [stdout] test features::test_no_builtins_without_external_rules_finds_nothing ... ok
[INFO] [stdout] test features::test_no_builtins_with_external_rules_still_finds_matches ... ok
[INFO] [stdout] test features::test_inline_ignore_suppresses_same_line_js_finding ... ok
[INFO] [stdout] test features::test_scan_exclude_skips_directory_prefixes ... ok
[INFO] [stdout] test features::test_secrets_mode_exclude_path_skips_matching_files ... ok
[INFO] [stdout] test features::test_inline_ignore_without_rule_list_suppresses_all_findings_on_line ... ok
[INFO] [stdout] test features::test_secrets_mode_ignore_rule_skips_specific_patterns ... ok
[INFO] [stdout] test features::test_init_installs_hook_and_baseline ... ok
[INFO] [stdout] test features::test_secrets_mode_finds_common_credentials ... ok
[INFO] [stdout] test features::test_fix_suggestion_appears_in_sarif_output ... ok
[INFO] [stdout] test features::test_changed_mode_scans_only_staged_files ... ok
[INFO] [stdout] test features::test_inline_ignore_suppresses_multiline_finding_when_directive_is_on_end_line ... ok
[INFO] [stdout] test features::test_no_explain_flag_hides_trace ... ok
[INFO] [stdout] test features::test_inline_ignore_suppresses_next_python_line_after_blank_lines ... ok
[INFO] [stdout] test features::test_inline_ignore_remains_rule_specific ... ok
[INFO] [stdout] test features::test_secrets_mode_skips_binary_files ... ok
[INFO] [stdout] test features::test_secrets_mode_redacts_snippets ... ok
[INFO] [stdout] test features::test_secrets_mode_uses_explicit_config_file ... ok
[INFO] [stdout] test features::test_secrets_rejects_config_symlink_escape ... ok
[INFO] [stdout] test features::test_explain_flag_shows_trace_on_taint_findings ... ok
[INFO] [stdout] test features::test_secrets_mode_exclude_path_file_skips_matching_files ... ok
[INFO] [stdout] test features::test_init_preserves_existing_config_and_keeps_baseline_flags_when_needed ... ok
[INFO] [stdout] test go::test_vulnerable_go_finds_all_rules ... ok
[INFO] [stdout] test features::test_scan_uses_discovered_config_baseline ... ok
[INFO] [stdout] test features::test_secrets_mode_changed_scans_only_staged_files ... ok
[INFO] [stdout] test javascript::test_safe_deno_taint_has_no_taint_findings ... ok
[INFO] [stdout] test go::test_safe_go_no_findings ... ok
[INFO] [stdout] test javascript::test_vulnerable_hono_taint_catches_flow ... ok
[INFO] [stdout] test javascript::test_safe_nextjs_taint_has_no_taint_findings ... ok
[INFO] [stdout] test javascript::test_vulnerable_deno_taint_catches_flow ... ok
[INFO] [stdout] test features::test_write_and_apply_baseline ... ok
[INFO] [stdout] test go::test_safe_go_taint_has_no_taint_findings ... ok
[INFO] [stdout] test javascript::test_safe_js_no_findings ... ok
[INFO] [stdout] test features::test_severity_filter_high ... ok
[INFO] [stdout] test features::test_write_and_apply_secrets_baseline ... ok
[INFO] [stdout] test javascript::test_safe_hono_taint_has_no_taint_findings ... ok
[INFO] [stdout] test java::test_vulnerable_java_finds_all_rules ... ok
[INFO] [stdout] test features::test_scan_exclude_glob_applies_to_changed_mode ... ok
[INFO] [stdout] test python::test_safe_py_aliases_no_findings ... ok
[INFO] [stdout] test python::test_safe_django_taint_has_no_taint_findings ... ok
[INFO] [stdout] test javascript::test_vulnerable_js_finds_all_rules ... ok
[INFO] [stdout] test output_formats::test_sarif_output_valid ... ok
[INFO] [stdout] test python::test_safe_cli_taint_has_no_taint_findings ... ok
[INFO] [stdout] test python::test_safe_py_no_findings ... ok
[INFO] [stdout] test php::test_vulnerable_php_finds_all_rules ... ok
[INFO] [stdout] test features::test_severity_filter_critical ... ok
[INFO] [stdout] test javascript::test_vulnerable_js_taint_catches_every_flow ... ok
[INFO] [stdout] test javascript::test_safe_js_taint_has_no_taint_findings ... ok
[INFO] [stdout] test output_formats::test_json_output_structure ... ok
[INFO] [stdout] test go::test_vulnerable_go_taint_catches_every_flow ... ok
[INFO] [stdout] test features::test_taint_findings_include_fix_suggestion_in_json ... ok
[INFO] [stdout] test python::test_safe_fastapi_taint_has_no_taint_findings ... ok
[INFO] [stdout] test javascript::test_vulnerable_nextjs_taint_catches_flow ... ok
[INFO] [stdout] test python::test_vulnerable_fastapi_taint_catches_flows ... ok
[INFO] [stdout] test python::test_vulnerable_py_aliases_catches_all_bypass_forms ... ok
[INFO] [stdout] test ruby::test_vulnerable_ruby_finds_all_rules ... ok
[INFO] [stdout] test rust_lang::test_vulnerable_rust_finds_all_rules ... ok
[INFO] [stdout] test python::test_vulnerable_py_finds_all_rules ... ok
[INFO] [stdout] test swift::test_vulnerable_swift_finds_all_rules ... ok
[INFO] [stdout] test python::test_vulnerable_cli_taint_catches_flows ... ok
[INFO] [stdout] test python::test_vulnerable_py_taint_catches_every_flow ... ok
[INFO] [stdout] test python::test_vulnerable_django_taint_catches_flows ... ok
[INFO] [stdout] test ruby::test_safe_ruby_no_findings ... ok
[INFO] [stdout] test python::test_safe_py_taint_has_no_taint_findings ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 78 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.84s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mcp_server.rs (/opt/rustwide/target/debug/deps/mcp_server-30e545aff2252f84)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_mcp_scan_nonexistent_path ... ok
[INFO] [stdout] test test_mcp_scan_directory ... ok
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.09s
[INFO] [stdout] test test_mcp_server_lifecycle ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.24s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/realistic_fixtures.rs (/opt/rustwide/target/debug/deps/realistic_fixtures-c553ff3c949f44df)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test realistic_next_app_multifile ... ok
[INFO] [stdout] test realistic_hono_app ... ok
[INFO] [stdout] test realistic_fastapi_app ... ok
[INFO] [stdout] test realistic_gin_service_multifile ... ok
[INFO] [stdout] test realistic_django_views ... ok
[INFO] [stdout] test realistic_express_app ... ok
[INFO] [stdout] test realistic_cli_tool ... ok
[INFO] [stdout] test realistic_django_chain_multihop ... ok
[INFO] [stdout] test realistic_gin_app ... ok
[INFO] [stdout] test realistic_gin_chain_multihop ... ok
[INFO] [stdout] test realistic_django_shop_multifile ... ok
[INFO] [stdout] test realistic_flask_app ... ok
[INFO] [stdout] test realistic_express_api_multifile ... ok
[INFO] [stdout] test realistic_express_chain_multihop ... ok
[INFO] [stderr]      Running tests/rule_inventory.rs (/opt/rustwide/target/debug/deps/rule_inventory-95a55e3e1a45642f)
[INFO] [stdout] test realistic_nextjs_handlers ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test website_rule_inventory_matches_generator_output ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/semgrep_integration.rs (/opt/rustwide/target/debug/deps/semgrep_integration-38ae6047f415ff91)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_load_rules_from_directory ... ok
[INFO] [stdout] test test_semgrep_rule_metadata ... ok
[INFO] [stdout] test test_sql_injection_rule_does_not_match_percent_formatting ... ok
[INFO] [stdout] test test_no_false_positives_on_safe_code ... ok
[INFO] [stdout] test test_sql_injection_rule ... ok
[INFO] [stdout] test test_eval_usage_rule ... ok
[INFO] [stdout] test test_pattern_not_inside_support_on_fixture ... ok
[INFO] [stdout] test test_hardcoded_secret_rule ... ok
[INFO] [stdout] test test_metavariable_regex_support_on_fixture ... ok
[INFO] [stdout] test test_rule_paths_include_exclude ... ok
[INFO] [stdout] test test_pattern_regex_support_on_fixture ... ok
[INFO] [stdout] test test_mixed_ast_and_regex_patterns ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/semgrep_parity.rs (/opt/rustwide/target/debug/deps/semgrep_parity-0a5ec70b7b283ec1)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_parity_paths_include_exclude ... ok
[INFO] [stdout] test test_parity_pattern_either ... ok
[INFO] [stdout] test test_parity_binary_operator_and_metavariable_regex ... ok
[INFO] [stdout] test test_parity_pattern_inside ... ok
[INFO] [stdout] test test_parity_pattern_regex_and_not_regex ... ok
[INFO] [stdout] test test_parity_pattern_not_inside ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests foxguard
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/rules/mod.rs - rules::impl_rule (line 27) ... ignored
[INFO] [stdout] test src/rules/mod.rs - rules::impl_rule (line 44) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5bad51714c1ad5a6251b9a18f8befd389bf4f40d3ae3800e7b901a98bf160fa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5bad51714c1ad5a6251b9a18f8befd389bf4f40d3ae3800e7b901a98bf160fa3", kill_on_drop: false }`
[INFO] [stdout] 5bad51714c1ad5a6251b9a18f8befd389bf4f40d3ae3800e7b901a98bf160fa3
